import json
import os
import sys

import requests
from openai import OpenAI
from swarm import Swarm, Agent

sys.path.append('/JiuTian/swarm/swarm-main/swarm')

#测试基本功能
client = OpenAI(api_key=os.environ["OPENAI_API_KEY_JIUTIAN"], base_url=os.environ["OPENAI_BASE_URL_JIUTIAN"])

def get_weather(loc):
    '''
    查询即时天气函数
    param loc：必要参数，字符串类型，用于表示查询天气的具体城市名称，\
    注意，中国的城市需要用对应城市的英文名称代替，例如如果需要查询北京市天气，则loc参数需要输入'Beijing'；
    ：return：Openweather API查询即时天气的结果，具体URL请求地址为：https://api.openweathermap.org/data/2.5/weather\
    返回结果对象类型为解析之后的JSON格式对象，并用字符串形式进行表示，其中包含了全部重要的天气信
    :return:
    '''
    weather_api_key = '9e7d36701fac2b6f3da5546a76661377'
    param = {
        'q': loc,
        'units': 'metric',
        'appid': weather_api_key,
        "lang":"zh_cn"
    }

    url = "https://api.openweathermap.org/data/2.5/weather"

    response = requests.get(url=url, params=param)
    data = response.json()

    #正常返回值
    return json.dumps(data)
    #异常返回值
    #return "对不起，由于网络问题无法查询此城市的天气情况"

#测试多智能体功能
swarm_client = Swarm(client)
agent = Agent(name = "天气问答Agent",instructions= "你是一个乐于助人的助手",functions=[get_weather])

response = swarm_client.run(agent=agent,messages=[{"role":"user","content":"北京今天适合爬山吗？"}])
print(response.messages[-1]["content"])